package cn.itcast.mapper;

import cn.itcast.pojo.permission;
import cn.itcast.pojo.role;
import cn.itcast.pojo.roleExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface roleMapper {
    int countByExample(roleExample example);

    int deleteByExample(roleExample example);

    int deleteByPrimaryKey(Integer roleId);

    int insert(role record);

    int insertSelective(role record);

    List<role> selectByExample(roleExample example);

    role selectByPrimaryKey(Integer roleId);

    int updateByExampleSelective(@Param("record") role record, @Param("example") roleExample example);

    int updateByExample(@Param("record") role record, @Param("example") roleExample example);

    int updateByPrimaryKeySelective(role record);

    int updateByPrimaryKey(role record);

    /**
     * 根据管理员所有角色的id查询该管理员的角色和权限的信息
     * @param roleIds
     * @return
     */
    List<role> getRoleByRoleIds(List<Integer> roleIds);


    /**
     * 根据管理员的id查询该管理员所有的角色信息
     * @param adminId
     * @return
     */
    List<role> getRoleByAdminId(Integer adminId);

    /**
     * 获取所有的角色信息
     * @param map
     * @return
     */
    List<role> getAllRole(Map<String,Object> map);

    /**
     * 给角色添加相应的权限
     * @param roleId
     * @param permissionId
     * @return
     */
    int addRoleAndPermission(Integer roleId, int permissionId);


    /**
     * 根据角色id删除该角色所有的权限
     * @param roleId
     * @return
     */
    int deleteRoleAndPermission(int roleId);

    /**
     * 根据所有的角色id查询所有的角色信息
     * @param roleIds
     * @return
     */
    List<role> getRolesByList(List<Integer> roleIds);

    /**
     * 根据角色的id查询管理员所有的权限id
     * @param roleId
     * @return
     */
    List<Integer> getPermissionIdsByRoleId(Integer roleId);


    /**
     *
     * @Description:
     * 根据角色信息获取角色ID
     * @auther: 张松
     * @date: 9:52 2020/6/19
     * @param: []
     * @return: java.lang.Integer
     *
     */
    Integer getRoleId(String role);


}